/**
 * 
 */
package com.koala.excepcion.excepciones;

import java.util.HashMap;
import java.util.Map;

import com.koala.excepcion.Excepcion;

/**
 * @author cerokool32
 * @category Excepciones
 * Excepción para manejo de paths de archivo
 *
 */
public class Fantasma_excepcion extends Excepcion {

	/*
	 *Serial de conversion autogenerado para manejo de versiones de la clase. 
	 */
	private static final long serialVersionUID = -4787127317167406659L;
	
	private Map<String, String> mapa;
	
	/**
	 * Excepcion para el manejo de archivos del sistema.
	 * @param mensaje Mensaje para el usuario.
	 * @param pila Arreglo de StackTraces del error nativo de JAVA.
	 * @param mapa Mapa de paramtros utilizado por el metodo que invoca.
	 */
	public Fantasma_excepcion(String mensaje, StackTraceElement[] pila, Map<String, String> mapa) {
		
		super(mensaje);
		this.setStackTrace(pila);
		
		if(mapa!=null)
			this.mapa=mapa;
		else
			this.mapa=new HashMap<String, String>();
		
	}

	/* (non-Javadoc)
	 * @see com.koala.excepcion.Excepcion#PilaDeError()
	 */
	@Override
	public StackTraceElement[] PilaDeError() {
		
		return this.getStackTrace();
	}

	/* (non-Javadoc)
	 * @see com.koala.excepcion.Excepcion#Parametros()
	 */
	@Override
	public Map<String, String> Parametros() {

		return this.mapa;
	}

	/* (non-Javadoc)
	 * @see com.koala.excepcion.Excepcion#AdicionarParametro(String nombreVariable, String valor)
	 */
	@Override
	public void AdicionarParametro(String nombreVariable, String valor) {
		
		this.mapa.put(nombreVariable, valor);
		
	}

}
